package com.jeecms.cms.action.front;

import static com.jeecms.cms.Constants.TPLDIR_TOPIC;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.jeecms.cms.entity.main.Channel;
import com.jeecms.cms.entity.main.CmsSite;
import com.jeecms.cms.entity.main.CmsTopic;
import com.jeecms.cms.manager.main.ChannelMng;
import com.jeecms.cms.manager.main.CmsTopicMng;
import com.jeecms.cms.web.CmsUtils;
import com.jeecms.cms.web.FrontUtils;

@Controller
public class TopicAct {

	public static final String TOPIC_INDEX = "tpl.topicIndex";
	public static final String TOPIC_CHANNEL = "tpl.topicChannel";
	public static final String TOPIC_DEFAULT = "tpl.topicDefault";

//	@RequestMapping(value = "/topic*.jspx", method = RequestMethod.GET)
//	public String index(Integer channelId, Integer topicId,
//			HttpServletRequest request, HttpServletResponse response,
//			ModelMap model) {
//		// 全部？按站点？按栏目？要不同模板？
//		CmsSite site = CmsUtils.getSite(request);
//		FrontUtils.frontData(request, model, site);
//		FrontUtils.frontPageData(request, model);
//		if (topicId != null) {
//			CmsTopic topic = cmsTopicMng.findById(topicId);
//			if (topic == null) {
//				return FrontUtils.pageNotFound(request, response, model);
//			}
//			model.addAttribute("topic", topic);
//			String tpl = topic.getTplContent();
//			if (StringUtils.isBlank(tpl)) {
//				tpl = FrontUtils.getTplPath(request, site.getSolutionPath(),
//						TPLDIR_TOPIC, TOPIC_DEFAULT);
//			}
//			return tpl;
//		} else if (channelId != null) {
//			Channel channel = channelMng.findById(channelId);
//			if (channel != null) {
//				model.addAttribute("channel", channel);
//			} else {
//				return FrontUtils.pageNotFound(request, response, model);
//			}
//			return FrontUtils.getTplPath(request, site.getSolutionPath(),
//					TPLDIR_TOPIC, TOPIC_CHANNEL);
//		} else {
//			return FrontUtils.getTplPath(request, site.getSolutionPath(),
//					TPLDIR_TOPIC, TOPIC_INDEX);
//		}
//	}
//
//	@RequestMapping(value = "/topic/{id}.jspx", method = RequestMethod.GET)
//	public String topic(@PathVariable Integer id, HttpServletRequest request,
//			HttpServletResponse response, ModelMap model) {
//		CmsSite site = CmsUtils.getSite(request);
//		if (id == null) {
//			return FrontUtils.pageNotFound(request, response, model);
//		}
//		CmsTopic topic = cmsTopicMng.findById(id);
//		if (topic == null) {
//			return FrontUtils.pageNotFound(request, response, model);
//		}
//		model.addAttribute("topic", topic);
//		String tpl = topic.getTplContent();
//		if (StringUtils.isBlank(tpl)) {
//			tpl = FrontUtils.getTplPath(request, site.getSolutionPath(),
//					TPLDIR_TOPIC, TOPIC_DEFAULT);
//		}
//		FrontUtils.frontData(request, model, site);
//		FrontUtils.frontPageData(request, model);
//		return tpl;
//	}

	@Autowired
	private CmsTopicMng cmsTopicMng;
	@Autowired
	private ChannelMng channelMng;
}
